布尔赋值运算符
  使用布尔赋值运算符可以把布尔比较与赋值组合起来,其方式与第3章中的数学赋值运算符(+=,*=等)相同。布尔赋值运算符 如表 4-4 所示。
表4-4 布尔赋值运算符
| 运算符 | 类别 | 示例表达式 | 结果 | 
|---|---|---|---|
| &= | Binary | var1 &= var2; | var1 的值是 var1 & var2 的结果 | 
| |= | Binary | var1 |= var2; | var1 的值是 var1 | var2 的结果 | 
| ^= | Binary | var1 ^= var2; | var1 的值是 var1 ^ var2 的结果 | 
  这些运算符处理布尔值和数值的方式与 &、| 和 ^ 相同。
&=和|=赋值运算符并不使用&&和||条件布尔运算符,即无论赋值运算符左边的值是什么,都处理所有操作数。
在下面的示例中,用户键入一个整数,然后代码使用该整数执行各种布尔运算。
将以下代码添加到 Program.cs 中:
        static void Main(string[] args)
        {
            Console.WriteLine("Enter an integer:");
            int myInt = Convert.ToInt32(Console.ReadLine());
            bool isLessThan10 = myInt < 10;
            bool isBetween0And5 = (0 <= myInt) && (myInt <= 5);
            Console.WriteLine("Integer less than 10? {0}", isLessThan10);
            Console.WriteLine("Integer between 0 and 5? {0}", isBetween0And5);
            Console.WriteLine("Exactly one of the above is true? {0}", isLessThan10 ^ isBetween0And5);
            Console.ReadKey();
        }
示例的说明
前两行代码使用前面介绍的技术,提示并接受一个整数值:
        Console.WriteLine("Enter an integer:");
        int myInt = Convert.ToInt32(Console.ReadLine());
  使用 Convert.ToInt32() 从字符串输入中得到一个整数。Convert.ToInt32() 是另一个类型转换命令,与前面使用的 Convert.ToDouble() 命令属于同一系列。
  接着声明两个布尔变量 isLessThan10 和 isBetween0And5,并赋值,其中的逻辑匹配其名称中的描述:
        bool isLessThan10 = myInt < 10;
        bool isBetween0And5 = (0 <= myInt) && (myInt <= 5);
接着在下面的3行代码中使用这些变量,前两行代码输出它们的值,第3行对它们执行一个操作,并输出结果。在执行这段代码时,假定用户输入了7。
  第一个输出是操作 myInt < 10 的结果。如果 myInt 是 7,则它小于 10,因此结果为 true。如果 MyInt 的值是 10 或更大,就会得到 false。
  第二个输出涉及较多计算:(0 <= myInt) && (myInt <= 5),其中包含两个比较操作,用于确定 myInt 是否大于或等于0,且小于或等于 5。接着对结果进行布尔 AND 操作。输入数字 7,则 (0 <= myInt) 返回 true,而 (myInt <= 5) 返回 false,最终结果就是 (true) && (false),即 false。
  最后,对两个布尔变量 isLessThan10 和 isBetween0And5 执行逻辑异或操作。如果一个变量的值是 true,另一个是 false,则代码返回 true,所以只有 myInt 是 6、7、8或 9,才返回 true,本例输入的是 7,所以结果是 true。
🔚